package com.basker.pisces.service.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.basker.pisces.common.enums.SignatureAlgorithmType;

/**
 * 标记方法对应的请求是否需要签名校验
 * <p>
 * 这个注解是一个hint，只是标记作用
 *
 * @author hangwen
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value = ElementType.METHOD)
public @interface EnableSignValidation {

    /**
     * 指定签名算法,默认SHA1
     *
     * @return
     */
    SignatureAlgorithmType signType() default SignatureAlgorithmType.SHA1;

    /**
     * 签名的有效分钟数，默认10分钟,<=0表示不考虑超时校验
     *
     * @return
     */
    int timeoutMinutes() default 10;
}
